#define VERBOSE 0
#define ADDRESS 0x04
#define BAUD 115200

#define DEVICE_MODE_MORSE 10
#define DEVICE_MODE_SPECTRUM 20

#define ITTERATION_PIN 7
#define SIGNAL_PIN 8

#define COMMAND_SetChar 10
#define COMMAND_SetColor 20
#define COMMAND_SetIncrement 21
#define COMMAND_SetMode 30
#define COMMAND_Stop 90

struct MORSE_CHAR{
	unsigned long encoding;
	int index;
};

#define MORSE_CHAR_A_ENCODING 23
#define MORSE_CHAR_B_ENCODING 469
#define MORSE_CHAR_C_ENCODING 1885
#define MORSE_CHAR_D_ENCODING 117
#define MORSE_CHAR_E_ENCODING 1
#define MORSE_CHAR_F_ENCODING 349
#define MORSE_CHAR_G_ENCODING 477
#define MORSE_CHAR_H_ENCODING 85
#define MORSE_CHAR_I_ENCODING 5
#define MORSE_CHAR_J_ENCODING 6007
#define MORSE_CHAR_K_ENCODING 471
#define MORSE_CHAR_L_ENCODING 373
#define MORSE_CHAR_M_ENCODING 119
#define MORSE_CHAR_N_ENCODING 29
#define MORSE_CHAR_O_ENCODING 1911
#define MORSE_CHAR_P_ENCODING 1501
#define MORSE_CHAR_Q_ENCODING 7639
#define MORSE_CHAR_R_ENCODING 93
#define MORSE_CHAR_S_ENCODING 21
#define MORSE_CHAR_T_ENCODING 7
#define MORSE_CHAR_U_ENCODING 87
#define MORSE_CHAR_V_ENCODING 343
#define MORSE_CHAR_W_ENCODING 375
#define MORSE_CHAR_X_ENCODING 1879
#define MORSE_CHAR_Y_ENCODING 7543
#define MORSE_CHAR_Z_ENCODING 1909

#define MORSE_CHAR_ZERO_ENCODING 489335
#define MORSE_CHAR_ONE_ENCODING 96119
#define MORSE_CHAR_TWO_ENCODING 22391
#define MORSE_CHAR_THREE_ENCODING 5495
#define MORSE_CHAR_FOUR_ENCODING 1367
#define MORSE_CHAR_FIVE_ENCODING 341
#define MORSE_CHAR_SIX_ENCODING 1877
#define MORSE_CHAR_SEVEN_ENCODING 7637
#define MORSE_CHAR_EIGHT_ENCODING 30581
#define MORSE_CHAR_NINE_ENCODING 122333

#define MORSE_CHAR_PERIOD_ENCODING 95703
#define MORSE_CHAR_COMMA_ENCODING 488823
#define MORSE_CHAR_QUESTION_ENCODING 22389
#define MORSE_CHAR_SLASH_ENCODING 7517
#define MORSE_CHAR_AT_ENCODING 96093

  // Actual encoding values are 0, however, I need a way to identify these characters in a non-false/0 way.
  // Assigning these values makes them unique, and will still result in only zeros being read out.
#define MORSE_CHAR_SPACE_ENCODING 128
#define MORSE_CHAR_GAP_ENCODING 64



#define MORSE_CHAR_A_INDEX 27
#define MORSE_CHAR_B_INDEX 23
#define MORSE_CHAR_C_INDEX 21
#define MORSE_CHAR_D_INDEX 25
#define MORSE_CHAR_E_INDEX 31
#define MORSE_CHAR_F_INDEX 23
#define MORSE_CHAR_G_INDEX 23
#define MORSE_CHAR_H_INDEX 25
#define MORSE_CHAR_I_INDEX 29
#define MORSE_CHAR_J_INDEX 19
#define MORSE_CHAR_K_INDEX 23
#define MORSE_CHAR_L_INDEX 23
#define MORSE_CHAR_M_INDEX 25
#define MORSE_CHAR_N_INDEX 27
#define MORSE_CHAR_O_INDEX 21
#define MORSE_CHAR_P_INDEX 21
#define MORSE_CHAR_Q_INDEX 19
#define MORSE_CHAR_R_INDEX 25
#define MORSE_CHAR_S_INDEX 27
#define MORSE_CHAR_T_INDEX 29
#define MORSE_CHAR_U_INDEX 25
#define MORSE_CHAR_V_INDEX 23
#define MORSE_CHAR_W_INDEX 23
#define MORSE_CHAR_X_INDEX 21
#define MORSE_CHAR_Y_INDEX 19
#define MORSE_CHAR_Z_INDEX 21

#define MORSE_CHAR_ZERO_INDEX 13
#define MORSE_CHAR_ONE_INDEX 15
#define MORSE_CHAR_TWO_INDEX 17
#define MORSE_CHAR_THREE_INDEX 19
#define MORSE_CHAR_FOUR_INDEX 23
#define MORSE_CHAR_FIVE_INDEX 23
#define MORSE_CHAR_SIX_INDEX 21
#define MORSE_CHAR_SEVEN_INDEX 19
#define MORSE_CHAR_EIGHT_INDEX 17
#define MORSE_CHAR_NINE_INDEX 15

#define MORSE_CHAR_PERIOD_INDEX 15
#define MORSE_CHAR_COMMA_INDEX 13
#define MORSE_CHAR_QUESTION_INDEX 17
#define MORSE_CHAR_SLASH_INDEX 19
#define MORSE_CHAR_AT_INDEX 15
#define MORSE_CHAR_SPACE_INDEX 25

#define MORSE_CHAR_GAP_INDEX 29
